home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / gedit-2 / plugins / snippets / Exporter.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-04-20  |  3.2 KB  |  92 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import os
  5. import tempfile
  6. import sys
  7. import shutil
  8. from snippets.Library import *
  9. import ElementTree as et
  10. from Helper import *
  11.  
  12. class Exporter:
  13.     
  14.     def __init__(self, filename, snippets):
  15.         self.filename = filename
  16.         self.set_snippets(snippets)
  17.  
  18.     
  19.     def set_snippets(self, snippets):
  20.         self.snippets = { }
  21.         for snippet in snippets:
  22.             lang = snippet.language()
  23.             if lang in self.snippets:
  24.                 self.snippets[lang].append(snippet)
  25.                 continue
  26.             self.snippets[lang] = [
  27.                 snippet]
  28.         
  29.  
  30.     
  31.     def export_xml(self, dirname, language, snippets):
  32.         root = et.Element('snippets')
  33.         if language:
  34.             filename = os.path.join(dirname, language + '.xml')
  35.             root.attrib['language'] = language
  36.         else:
  37.             filename = os.path.join(dirname, 'global.xml')
  38.         for snippet in snippets:
  39.             root.append(snippet.to_xml())
  40.         
  41.         write_xml(root, filename, ('text', 'accelerator'))
  42.  
  43.     
  44.     def export_archive(self, cmd):
  45.         dirname = tempfile.mkdtemp()
  46.         curdir = os.getcwd()
  47.         
  48.         try:
  49.             os.chdir(dirname)
  50.             for language, snippets in self.snippets.items():
  51.                 self.export_xml(dirname, language, snippets)
  52.             
  53.             status = os.system('%s "%s" *.xml' % (cmd, self.filename))
  54.         finally:
  55.             os.chdir(curdir)
  56.  
  57.         if status != 0:
  58.             return _('The archive `%s` could not be created' % self.filename)
  59.         shutil.rmtree(dirname)
  60.  
  61.     
  62.     def export_targz(self):
  63.         self.export_archive('tar -c --gzip -f')
  64.  
  65.     
  66.     def export_tarbz2(self):
  67.         self.export_archive('tar -c --bzip2 -f')
  68.  
  69.     
  70.     def export_tar(self):
  71.         self.export_archive('tar -cf')
  72.  
  73.     
  74.     def run(self):
  75.         dirname = os.path.dirname(self.filename)
  76.         if not os.path.exists(dirname):
  77.             return _('Target directory `%s` does not exist') % dirname
  78.         if not os.path.isdir(dirname):
  79.             return _('Target directory `%s` is not a valid directory') % dirname
  80.         (root, ext) = os.path.splitext(self.filename)
  81.         actions = {
  82.             '.tar.gz': self.export_targz,
  83.             '.tar.bz2': self.export_tarbz2,
  84.             '.tar': self.export_tar }
  85.         for k, v in actions.items():
  86.             if self.filename.endswith(k):
  87.                 return v()
  88.         
  89.         return self.export_targz()
  90.  
  91.  
  92.